Technical Q&A QA1205
Getting the name of a profile


Q: ColorSync ÉvÉçÉtÉ@ÉCÉãÇÃñºëOÇÉvÉçÉOÉâÉ~ÉìÉOÇ…ÇÊǡǃéÊìæÇµÇΩÇ¢ÇÃÇ≈Ç∑Ç™ÅAâΩÇ©ï˚ñ@ÇÕdžÇËÇ‹Ç∑Ç©ÅH

A: àÍî Ç…ÅAÉvÉçÉtÉ@ÉCÉãñºÇ 1 ǬÇÃåæåÍÇ≈ÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩLJÇÃÇÕÅAÉVÉOÉlÉ`ÉÉÅedescÅfÇégópǵÇΩÉfÅ[É^Çä‹ÇfiÅedescÅfÉ^ÉOÇ…äiî[Ç≥ÇÍǃǢNjÇ∑ÅBICC ÉoÅ[ÉWÉáÉì 4 ÇΔ ÉoÅ[ÉWÉáÉì 2 ÇÃÇ¢Ç≠ǬǩÇÃÉvÉçÉtÉ@ÉCÉãÇÃèÍçáÅAï°êîÇÃåæåÍÇ≈ÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩÉvÉçÉtÉ@ÉCÉãñºÇÕÅAÉVÉOÉlÉ`ÉÉÅemlucÅfÇégópǵÇΩÉfÅ[É^Çä‹ÇfiÅedescÅfÉ^ÉOÇ‹ÇΩÇÕÅedscmÅfÉ^ÉOÇ…äiî[Ç≥ÇÍǃǢNjÇ∑ÅBColorSync Ç™íÒãüÇ∑ÇÈ CMCopyProfileLocalizedString ä÷êîÇ‹ÇΩÇÕ CMCopyProfileLocalizedStringDictionary ä÷êîÇégǡǃÅAêVǵǢÅemlucÅfÇΔǢǧÉ}ÉãÉ`ÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩ UniCode É^ÉOÇ…ÉAÉNÉZÉXÇ≈Ç´Ç‹Ç∑Åiè⁄ç◊DžǬǢǃÇÕÅATN 2035 ColorSync On Mac OS X ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅjÅB

ñºëOÇéÊìæÇ∑ÇÈç≈ó«ÇÃï˚ñ@ÇÕÅF

a) Ç‹Ç∏ÅACMCopyProfileLocalizedString ÇåƒÇ—èoǵǃÅAÅedescÅf/ÅemlucÅfÉ^ÉOÅiLJǵdžÇÍÇŒÅjÇ©ÇÁÅAÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩñºëOÇÃÇ§Çøç≈ìKǻLJÇÃÇéÊìæÇµÇ‹Ç∑ÅB

b) DZÇÍÇ™é∏îsǵÇΩèÍçáÇÕÅACMCopyProfileLocalizedString ÇåƒÇ—èoǵǃÅAÅedscmÅf/ÅemlucÅfÉ^ÉOÅiLJǵdžÇÍÇŒÅjÇ©ÇÁÅAÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩñºëOÇÃÇ§Çøç≈ìKǻLJÇÃÇéÊìæÇµÇ‹Ç∑ÅB

c) è„ãLÇÃÇ«ÇøÇÁÇÃåƒÇ—èoǵDžLJé∏îsǵÇΩèÍçáÇÕÅACMGetScriptProfileDescription ÇåƒÇ—èoǵǃÅAè]óàÇÃÅedescÅfÉ^ÉOÇ©ÇÁÉçÅ[ÉJÉâÉCÉYñºÇéÊìæÇµÇ‹Ç∑ÅB

â∫ÇÃÉäÉXÉg 1 ÇÃÉRÅ[ÉhÉXÉjÉyÉbÉgÇÕÅAè„ãLÇÃä÷êîÇégǡǃÉvÉçÉtÉ@ÉCÉãñºÇéÊìæÇ∑ÇÈï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBDZÇÃÉRÅ[ÉhÇÕÅAñºëOÇå©Ç¬ÇØÅACFString ÇΔǵǃï‘ǵNjÇ∑ÅB

 CFStringRef CopyProfileDescriptionCFString(CMProfileRef prof)
{
    Str255         pName;
    ScriptCode     code;
    CFStringRef    str = nil;
    CMError        err;


    // ICC v4 ÉvÉçÉtÉ@ÉCÉãÇÃèÍçáÇÕÅAÅedescÅfÉ^ÉOÇ‹ÇΩÇÕÅemlucÅfÉ^ÉOÇ©ÇÁ
    // ç≈ìKÇ»ÉçÅ[ÉJÉâÉCÉYñºÇéÊìæÇ∑ÇÈÇÊǧDžǵNjÇ∑

    err = CMCopyProfileLocalizedString(prof, cmProfileDescriptionTag, 0,0, &str);
    // ñºëOÇéÊìæÇ≈ǴǻǢèÍçá
    if (err != noErr)
    {
        // ÉAÉbÉvÉãêªÇÃÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩ ICC v2 ÉvÉçÉtÉ@ÉCÉãÇÃèÍçáÇÕÅA
        // ÅedescÅfÉ^ÉOÇ‹ÇΩÇÕÅemlucÅfÉ^ÉOÇ©ÇÁç≈ìKÇ»ÉçÅ[ÉJÉâÉCÉYÇ≥ÇÍÇΩñºëOÇ
        // éÊìæÇ∑ÇÈ

        err = CMCopyProfileLocalizedString(prof, cmProfileDescriptionMLTag, 0,0, &str);
        // ñºëOÇéÊìæÇ≈ǴǻǢèÍçá
        if (err != noErr)
        {
            // í èÌÇà ICC v2 ÉvÉçÉtÉ@ÉCÉãÇÃèÍçáÇÕÅAÅedescÅfÉ^ÉO
Å@Å@Å@Å@Å@Å@//Ç‹ÇΩÇÕÅemlucÅfÉ^ÉOÇ©ÇÁñºëOÇéÊìæÇ∑ÇÈ
            err = CMGetScriptProfileDescription( prof, pName, &code);
            // ÉvÉçÉtÉ@ÉCÉãñºÇ CFString Ç…ïœä∑Ç∑ÇÈ
            if (err == noErr)
            {
                str = CFStringCreateWithPascalString(0, pName, code);
            }
        }
    }
    return str;
}

ÉäÉXÉg 1. ColorSync ÉvÉçÉtÉ@ÉCÉãÇÃñºëOÇÃéÊìæ



[2002 îN 10 åé 25 ì˙]